import 'package:flutter/material.dart';
import 'package:intl/intl.dart';

class DateTimeUtil {
  /**
   *  把日期字符串，格式化为指定的形式
   *  如：dateFormat:"yyyy-MM-dd",dateTime:"2020-05-30 09:25:00"
   *  把2020-05-30 09:25:00 转换为  2020-05-30
   *
   *  dateTime格式要求:
   * * `"2012-02-27 13:27:00"`
   * * `"2012-02-27 13:27:00.123456789z"`
   * * `"2012-02-27 13:27:00,123456789z"`
   *
   */
  static String dateFormatConvert(String dateFormat, String dateTime) {
    String strResultDate =
        DateFormat(dateFormat).format(DateTime.parse(dateTime));
    return strResultDate;
  }

  static void test() {
    DateTime dateTime = DateTime.now();
    print('DateTimeUtil.test当前时间=$dateTime');
    int millisecondsSinceEpoch = dateTime.millisecondsSinceEpoch;
    print('DateTimeUtil.test 当前时间戳=$millisecondsSinceEpoch');

    DateTime date2 =
        DateTime.fromMillisecondsSinceEpoch(millisecondsSinceEpoch);
    print('DateTimeUtil.test 时间戳转日期：$date2');

    //拼接成date
    DateTime dentistAppointment = new DateTime(2019, 6, 20, 17, 30, 20);
    print('DateTimeUtil.test拼接成date=$dentistAppointment');

    // 时间比较
    print(
        "'DateTimeUtil.test dateTime 是在当前时间之前吗?=${DateTime.now().isBefore(dateTime)}"); // 在之前
    // print(today.isAfter(date3)); // 在之后

    print(
        "DateTimeUtil.test dateTime 时间是否相同?=${dateTime.isAtSameMomentAs(dateTime)}"); // 相同

    // print(date3.compareTo(today)); // 大于返回1；等于返回0；小于返回-1。

//时间增加
    //  var fiftyDaysFromNow = today.add(new Duration(days: 5));
    // print('today加5天：$fiftyDaysFromNow');
//时间减少
    //  DateTime fiftyDaysAgo = today.subtract(new Duration(days: 5));
    // print('today减5天：$fiftyDaysAgo');
//时间差 两个时间相差 小时数
    //  print('比较两个时间 差 小时数：${fiftyDaysFromNow.difference(fiftyDaysAgo)}');

    //  print('本地时区简码：${today.timeZoneName}');

    //print('返回UTC与本地时差 小时数：${today.timeZoneOffset}');

    //print('获取年月日：${today.year}'); //month、day、hour、minute、second、millisecond、microsecond

    //print('星期：${today.weekday}'); // 返回星期几


    // 参考文章 https://www.cnblogs.com/lxlx1798/p/11267411.html
  }
}
